package com.xjgz.aio.socket;

public enum StateMachineEnum {

    /**
     * 连接已建立并创建Session对象
     */
    NEW_SESSION,

    /**
     * 读通道已被关闭
     * <p>
     * 通常由以下几种情况会触发该状态
     * <ol>
     * <li>对端主动关闭write通道，致使本端满足了EOF条件</li>
     * <li>当前AioSession处理完读操作后检测到自身处于{@link StateMachineEnum.SESSION_CLOSING}</li>
     * </ol>
     */
    INPUT_SHUTDOWN,

    /**
     * 业务处理异常
     */
    PROCESS_EXCEPTION,

    /**
     * 协议解码异常
     */
    DECODE_EXCEPTION,

    /**
     * 读通道异常
     */
    INPUT_EXCEPTION,

    /**
     * 写通道异常
     */
    OUTPUT_EXCEPTION,

    /**
     * 会话正在关闭中
     */
    SESSION_CLOSING,

    /**
     * 会话已关闭
     */
    SESSION_CLOSED,

    /**
     * 拒绝接受连接，仅在Server端有效
     */
    REJECT_ACCEPT,

    /**
     * 服务端接受连接异常
     */
    ACCEPT_EXCEPTION,
    /**
     * 内部异常
     */
    INTERNAL_EXCEPTION,
}
